1. Field of the Invention
The present invention generally relates to Universal Serial Bus (USB), and more particularly to a USB 3.0 transaction translator (U3TT) and an associated IN/OUT bulk transaction method.
2. Description of Related Art
Universal Serial Bus (USB) is a specification of peripheral devices to establish communication between the devices and a host. USB 3.0 was released in 2008, and a USB 3.0 cable is shown in FIG. 1A. In addition to a signal pair D+/D− for USB 2.0 data path, two signal pairs SSTX+/SSTX− and SSRX+/SSRX− are further provided for USB 3.0 SuperSpeed data path.
When a USB 2.0 device is coupled to a USB 3.0 host, communication is performed over the non-SuperSpeed data path D+/D−. The applicant of the present invention discloses a USB 3.0 transaction translator (U3TT) in China Patent Application No. 201010129143.4, the disclosure of which is hereby incorporated by reference. The U3TT 10 as shown in FIG. 1B is coupled between the USB 3.0 host 12 and the USB 2.0 device 14, and is utilized to upgrade the USB 2.0 device to act as a quasi-USB 3.0 device such that data transfer speed can be improved.
USB provides four information transfer types: control transfer, bulk transfer, interrupt transfer and isochronous transfer, among which the bulk transfer type is commonly adapted to a mass storage device such as a flash memory for transferring large amount of data between the host and the device. The bulk transfer type uses any available bandwidth and retries packets when errors occur. In other words, the bulk transfer type guarantees the correctness of data but not the bandwidth (or transfer speed).
FIG. 2A shows a flow diagram of IN bulk transaction using the U3TT. In step 201, the USB 3.0 host sends an acknowledge packet to the U3TT. The U3TT responds to the USB 3.0 host with a negative acknowledge packet NRDY indicating “not ready” in step 202. Subsequently, in step 203, the U3TT translates the USB 3.0 IN acknowledge packet into a USB 2.0 token packet, and then sends the token packet to the USB 2.0 device. The USB 2.0 device then responds to the U3TT with data in step 204. Afterwards, in step 205, the U3TT sends an endpoint acknowledge packet ERDY indicating “endpoint ready” to the USB 3.0 host. The USB 3.0 host re-sends the IN acknowledge packet to the U3TT in step 206, and the U3TT then responds to the USB 3.0 host with data in step 207. According to the flow described above, all steps except steps 203 and 204 do not use the USB 2.0 bus, therefore decreasing system performance.
FIG. 2B shows a flow diagram of OUT bulk transaction using the U3TT. In step 211, the USB 3.0 host sends data to the U3TT. The U3TT responds to the USB 3.0 host with a negative acknowledge packet NRDY indicating “not ready” in step 212. Subsequently, in step 213, the U3TT translates the USB 3.0 data into USB 2.0 data, and then sends the USB 2.0 data to the USB 2.0 device. The USB 2.0 device then responds to the U3TT with an acknowledge packet ACK in step 214. Afterwards, in step 215, the U3TT sends an endpoint acknowledge packet ERDY indicating “endpoint ready” to the USB 3.0 host. The USB 3.0 host re-sends the data to the U3TT in step 216, and the U3TT then responds to the USB 3.0 host with an acknowledge packet ACK in step 217. According to the flow described above, all steps except steps 213 and 214 do not use the USB 2.0 bus, therefore decreasing system performance.
In order to improve the performance of bus bandwidth usage, a need has arisen to propose an improved U3TT and a novel IN/OUT bulk transaction method to improve USB 2.0 bus bandwidth usage.